The use of data randomization and de-randomization techniques are well known in the prior art. However, for those who are not intimately familiar with this technology, the following information is provided.
The term "randomization" as it is used in connection with this technology, is somewhat of a misnomer. To the uninitiated, one might think that you would not want to "randomize" data before recording it on magnetic media or transferring it over a modem since such "randomization" seemingly render the data completely useless to the recipient. There are, however, there are good reasons to "randomize" the data, so long as the original data can be recovered later.
When data is recorded to magnetic media or is transferred by modem, it is transferred usually in a serial bit stream as a series of multi-bit words. The number of bits in each word can be 8, 16, 32, 64, or whatever. That is not important here. What is important is that when all the words are serially arranged, depending upon the type of data being transmitted, there may be long groups or strings of ones or zeros or long strings of repeating patterns of one and zeros which make up the serial data.
In the art of storing and transmitting data, the lost of data is basically an occupational hazard and therefore techniques have been developed to recover lost or missing data. For example, to improve data integrity, it is known to use error correction coding techniques, parity bits and the like. One of the problems associated with magnetic recording techniques, for example, is that this technology is more apt to have difficulty in reading the previously stored data if that data consists either of a long string of ones, a long string of zeros or a long string of repeating patterns of ones and zeros. Data randomization strives to avoid this problem by changing the state of selected bits in the words of transmitted data in a preselected pattern. Since preselected bits are changed, long strings of data originally having a repeating pattern (i.e., all ones, all zeros or a pattern of ones and zeros) no longer exhibit that repeating pattern, especially if the preselected pattern does not itself have a pattern which repeats quickly. Thus, so long as the preselected pattern is known, then the bits can be switched again when they are received at the receiving end of a modem or read off of magnetic media, to put the data back into its original form. Thus, data randomization is concerned with the randomizing of the data, that is, the switching of the state of selected bits in a preselected pattern, to try to avoid having long instances of data which appears in a pattern. Data de-randomization is the reversal of that process. The data is randomized before it is recorded to magnetic media or before it is transmitted by modem and then is de-randomized after it is read off of magnetic media or after it is received by a receiving modem.
The preselected pattern which is used is usually some sort of a pseudo-random pattern of the type generated by an irreducible generator polynomial. Irreducible generator polynomials are used because they can be rather simply implemented using a shift register circuit of the type shown in FIG. 1. Indeed, the shift register implementation of FIG. 1 is used to randomize, or derandomize, for that matter, the data in a serial bit stream according to the following polynomial: EQU g(x)=x.sup.15 +x+1.
The shift register implementation of FIG. 1 generates the sequence of data set forth in Table I. This particular randomizer is particularly useful in connection with storing tape on digital audio tape (DAT). For a better understanding of DAT technology, the reader is directed to the following articles, all of which are incorporated by reference herein: (1) Isn't DAT Special?by Bert Vermueulen and Mike Law, published in the Dec. 1988 issue of Mini-Micro Systems; (2) DAT for Data by J. Young and Eng Tan, published in the Feb. 1988 issue of Systems International, Reed Business Publishing; (3) All Present and Correct by Eng Tan and Mark Dunstan in the Feb., 1988 issue of Systems International, Reed Business Publishing; and (4) DAT Data Format Takes Shape by Pete Bramhall and Mark Dunstan, in the Mar. 1988 issue of Systems International, Reed Business Publishing.
Turning to the randomizer of FIG. 1, if it is initialized to 000 0000 0000 0001 at the beginning of each frame and bit 0 of the randomizer is exclusively ORed (XORed) with the incoming bit stream, least significant bit (LSB) first, prior to recording or transmitting, the data will be randomized, that is, selected bits in the incoming data stream will have their states switched so that the selected bits will either go from a one to a zero or a zero to a one, whenever a binary one is outputted from bit 0 (SR.sub.0) of the shift register. Those skilled in this art will appreciate that one the shift register has been initialized, it will count continuously, changing state in a predetermined pattern and thus predetermined bits in the incoming serial bit stream will change state by the action of the XOR gate 20, thereby helping to ensure that long strings of ones or long strings of zeros or long strings of repeating patterns of ones and zeros of data will not likely occur.
After the data has been transmitted or stored, the randomized data can be played through an identical randomizer to that of FIG. 1 and the original data pattern will be recovered. That is to say, exactly the same shift register implementation can often be used to both randomize and de-randomize the data. In the randomization process the preselected bits are caused to change state when a binary one is outputted from the shift register into an exclusive OR (XOR) gate 20, which also receives the incoming data. XOR gate 20 then inverts bits of data on line 30 whenever the shift register outputs a logical one. In the derandomization process those same preselected bits are caused to switch back (i.e. they are inverted again) to their original state when a binary one is outputted from the shift register and into exclusive OR gate 20 which then acts upon the previously randomized data. Thus, the original data is recovered.
The circuitry of FIG. 1 assumes that the input data which is to be randomized or de-randomized arrives least significant bit (LSB) first. Unfortunately, in the hardware world, there are two points of view, namely, that serial data should be supplied least significant bit (LSB) first, or that it should be supplied most significant bit (MSB) first. The various hardware manufactures have differing views as to which scheme, LSB first or MSB first, should be used. Since two different pieces of hardware built by different manufacturers may have to deal with the data randomization and de-randomization processes, if one piece of hardware works LSB first and the other works MSB first, then the randomizer shown in FIG. 1 cannot be used in both pieces of equipment. Otherwise, instead of first randomizing and then de-randomizing the data, the shift register would perform two randomization processes, one upon the data LSB first and thereafter upon the data MSB first. That would, of course, render the data doubly randomized and therefore basically useless.
It is an object therefore, of the present invention, to provide a randomizer which can be operated backwards compared to the randomizer shown in FIG. 1. That is to say, if the randomizer of FIG. 1 is used with LSB first data, it is an object of the present invention to provide a randomizer which can be used with MSB first data (or visa versa), and to randomize (or de-randomize) the data such that the randomization process is equivalent to randomization (or de-randomization) done on LSB first data (or visa versa).